package ar.unsam.tp.programa

import ar.unsam.tp.excepciones.SolicitudNoPendienteException
import ar.unsam.tp.solicitudes.Solicitud
import java.util.ArrayList
import java.util.List

class Administrador {
	@Property String nombre
	@Property List<Solicitud> solicitudesPendientes = new ArrayList<Solicitud>()

	def void agregarSolicitud(Solicitud solicitud) {
		if (solicitudesPendientes.contains(solicitud))
			throw new SolicitudNoPendienteException("La solicitud ya se encuentra en la lista de pendientes")
		solicitudesPendientes.add(solicitud)
	}

	def void aceptarSolicitud(Solicitud solicitud) {
		if (!solicitudesPendientes.contains(solicitud))
			throw new SolicitudNoPendienteException("La solicitud no se encontro en la lista de pendientes")
		solicitudesPendientes.remove(solicitud)
		solicitud.aceptar
	}

	def void rechazarSolicitud(Solicitud solicitud, String motivo) {
		if (!solicitudesPendientes.contains(solicitud))
			throw new SolicitudNoPendienteException("La solicitud no se encontro en la lista de pendientes")
		solicitudesPendientes.remove(solicitud)
		solicitud.rechazar(motivo)
	}
}
